#import "NSString+Extension.h"

@implementation NSString (Extension)

/*===================================================================
 说明：
	从字典生成一个JSON字符串
 ==================================================================*/
+ (NSString *)stringWithDictionary:(NSDictionary *)dict
{
    NSData *data  = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:nil];
    NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    
    str = [str stringByReplacingOccurrencesOfString:@"\n" withString:@""];
    str = [str stringByReplacingOccurrencesOfString:@" : " withString:@":"];
    str = [str stringByReplacingOccurrencesOfString:@"{  " withString:@"{"];
    
    return str;
}

/*===================================================================
 说明：
	从数据生成16进制以空格分离的字符串, 一般用于将通讯数据打印出来
 ==================================================================*/
+ (NSString *)stringWithData:(NSData *)data
{
    NSString *s = @"";
    Byte *buf = (Byte *)data.bytes;
    
    for (uint i=0; i<data.length; i++)
    {
        s = [s stringByAppendingFormat:@"%02X ", buf[i]];
    }
    
    return s;
}

/*===================================================================
 说明：
	获取字符长度（中文算2个长度、英文1个）
 ==================================================================*/
- (NSUInteger)lengthOfWorld
{
	NSUInteger strlength = 0;
	
	char *p = (char *)[self cStringUsingEncoding:NSUnicodeStringEncoding];
	NSUInteger len = [self lengthOfBytesUsingEncoding:NSUnicodeStringEncoding];
	
	for (NSUInteger i=0 ; i<len; i++)
	{
		if (*p) {
			p++;
			strlength++;
		}
		else {
			p++;
		}
		
	}
	
	return strlength;
}

@end
